home *** CD-ROM | disk | FTP | other *** search
- program testdate;
- uses datebox,crt,dos,keybrd;
- { KEYBRD is my I/O-unit; just remove it's reference and the brackets
- surrounding keytype, keysettype and key in DATEBOX.PAS and everthing
- will work standalone}
- var buf:string;
- long_i:longint;
- buf_dt,buf_dt1:datetime;
- language_set,i,j:integer;
- ch:char;
- (********************************)
- procedure test_datetext;
-
- procedure test_text(long_dt:longint);
- var buf_dt:datetime;
-
- procedure write_text(x:integer);
- begin
- dt_from_longdat(long_dt,buf_dt);
- writeln(8+x:5,' ',datetext(buf_dt,8+x):28,' ',
- 10+x:5,' ',datetext(buf_dt,10+x):28);
- end;
- begin
- case language of
- 0:write('English ');
- 1:write('Deutsch ');
- 2:write('Français');
- 3:write('Italiano');
- end;
- writeln;
- writeln('Value:','8-digit values':30,'Value:':11,'10-digit values':31);
- writeln;
- write_text(0);
- write_text(10);
- write_text(100);
- write_text(110);
- write_text(1000);
- write_text(1010);
- write_text(1110);
- write_text(10000);
- write_text(10010);
- writeln('Faulty value:');
- write_text(3);
- write_text(-773);
- write_text(-7730);
- end;
- (********************************)
- begin
-
- {FUNCTION datetext(newdt_long:longint;long:integer):string;}
- { returns a string of the dates to print, returns different date formats
- dependent upon value of long and in the different languages set with
- global variable "language" (default: German, of course, set in the
- initialization part of the unit DATEBOX)}
- { values of long: 8 -> 02.09.91
- 10 -> 02.09.1991
- add 10 to eliminate leading zero's 18(20) -> 2.9.(19)91
- add 100 to get 'Mon, (D)D.(M)M.(YY)YY' format
- add 1000 to get 'Monday (D)D. September (YY)YY' format
- add 10000 to get 'Monday (D)D. Sep. (YY)YY' format }
- repeat
- clrscr;
- writeln('TEST DATETEXT: Enter date as a LONGINT (CCYYMMDD ie 19910331)');
- writeln('No range tests! Just century may be omitted; no weekdays then!');
- writeln;
- readln(long_i);
- i:=0;
- ch:='?';
- repeat
- language:=i;
- test_text(long_i);
- if i<3 then begin
- writeln;
- writeln('ESC to leave procedure, ENTER to continue');
- ch:=readkey;
- clrscr;
- end;
- writeln;
- inc(i);
- until (ch=#27) or (i>3);
- writeln;
- if ch<>#27 then begin
- writeln;
- writeln('ESC to leave procedure, ENTER to continue');
- ch:=readkey;
- end;
- until ch=#27;
- ch:='?';
- language:=language_set;
- end;
- (********************************)
- procedure testdt_from_stringdat;
- {PROCEDURE dt_from_stringdat(var s:string;var dt:datetime);} {Rudolf Regez}
- { converts date-string into datetime-date}
- begin
- language:=language_SET;
- repeat
- clrscr;
- writeln('TEST DT_FROM_STRING: Enter date as a string ie March, 15th 1991');
- writeln('Limit: try: "roman emperor Augustus, eating 1 apple, went to bed at 11.45pm!"');
- writeln('or: "May I sell this 3 sets at $1500 each ?" (monthname is case and language');
- writeln('sensitive, the strings above just work if language=English)');
- writeln;
- readln(buf);
- dt_from_stringdat(buf,buf_dt);
- if pos('?',buf)=0 then begin
- write(datetext(buf_dt,10),' or ');
- write(datetext(buf_dt,1020));
- buf_dt1:=buf_dt;
- next_day(buf_dt);
- writeln('; next: ',datetext(buf_dt,10));
- writeln(date_diff(sysdatetime,buf_dt1),' days from SYSTIME, which is ',
- datetext(sysdatetime,1020));
- end
- else begin
- write(#7);
- writeln(buf);
- end;
- writeln;
- writeln('ESC to leave procedure, ENTER to continue');
- ch:=readkey;
- until ch=#27;
- ch:='?';
- end;
- (********************************)
- procedure testread_date;
- begin
- language:=language_SET;
- repeat
- clrscr;
- writeln('TEST READ_DATE: Enter date as DD.MM.(CC)YY');
- writeln('the separator set (now: "',separator,'") has a certain CR-function;');
- writeln('try: "2',separator,'2',separator,'" and CR or "2 CR 2 CR CR"!');
- writeln('Just CR returns the system-date');
- writeln;
- buf:=''; {no default}
- gotoxy(10,10);
- read_date(buf,buf_dt,key);
- if key<>escapekey then write(' ',datetext(buf_dt,1010));
- writeln;
- writeln;
- writeln('ESC to leave procedure, ENTER to continue');
- ch:=readkey;
- until ch=#27;
- ch:='?';
- end;
- (********************************)
- begin
- language_set:=language;
- repeat
- clrscr;
- gotoxy(20,10);
- Writeln('.....some silly tests with dates...');
- writeln;
- gotoxy(20,12);
- writeln('1 : date output');
- gotoxy(20,13);
- writeln('2 : analyse date string');
- gotoxy(20,14);
- writeln('3 : date entry');
- gotoxy(20,17);
- write('enter # , ESC to leave: ');
- gotoxy(25,19);
- write('8 to alter separator (now: "',separator,'")');
- gotoxy(25,20);
- write('9 to alter language (now: "',language_set,'")');
- ch:=readkey;
- case ch of
- '1' : test_datetext;
- '2' : testdt_from_stringdat;
- '3' : testread_date;
- '8' : begin
- writeln;
- writeln('choose separator! ');
- ch:=readkey;
- separator:=ch;
- end;
- '9' : begin
- writeln;
- writeln('0: English, 1: German, 2: French, 3: Italian; enter #');
- ch:=readkey;
- if ch in ['0'..'3'] then language_set:=ord(ch)-48
- else language_set:=0;
- end;
- #27 : halt;
- else test_datetext;
- end;
- until ch=#27;
- end.